{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\".\\\\diyLogo.png\" alt=\"some_text\">\n",
    "<h1> 第二讲 程序设计基础</h1>\n",
    "<a id=backup></a>\n",
    "<H2>目录</H2>  \n",
    "\n",
    "[2.1 程序执行过程](#Section1)  \n",
    "[2.2 程序实例](#Section2)  \n",
    "[2.3 程序的基本结构](#Section3)     \n",
    "[2.4 顺序结构](#Section4)  \n",
    "[2.5 分支结构](#Section5)  \n",
    "[2.6 循环结构](#Section6) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    "a=!pip list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "numpy                             1.26.4\n",
      "numpydoc                          1.7.0\n",
      "matplotlib                        3.8.4\n",
      "matplotlib-inline                 0.1.6\n"
     ]
    }
   ],
   "source": [
    "for item in a:\n",
    "    if 'numpy' in item:\n",
    "        print(item)\n",
    "\n",
    "\n",
    "for item in a:\n",
    "    if 'matplotlib' in item:\n",
    "        print(item)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x195f0bc3500>,\n",
       " <matplotlib.lines.Line2D at 0x195f0bc33e0>]"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(0,100*np.pi)\n",
    "plt.plot(x,np.sin(8*x+np.pi/2),x,np.cos(x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.50.0 (0)\n",
       " -->\n",
       "<!-- Pages: 1 -->\n",
       "<svg width=\"238pt\" height=\"260pt\"\n",
       " viewBox=\"0.00 0.00 238.29 260.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 256)\">\n",
       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-256 234.29,-256 234.29,4 -4,4\"/>\n",
       "<!-- 1 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>1</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"79.29\" cy=\"-234\" rx=\"27.1\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"79.29\" y=\"-230.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Start</text>\n",
       "</g>\n",
       "<!-- 2 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>2</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"79.29\" cy=\"-162\" rx=\"44.39\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"79.29\" y=\"-158.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Input=&gt;x</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;2 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>1&#45;&gt;2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M79.29,-215.7C79.29,-207.98 79.29,-198.71 79.29,-190.11\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"82.79,-190.1 79.29,-180.1 75.79,-190.1 82.79,-190.1\"/>\n",
       "</g>\n",
       "<!-- 3 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>3</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"79.29\" cy=\"-90\" rx=\"66.09\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"79.29\" y=\"-86.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">for(i=0;i&lt;0;i++</text>\n",
       "</g>\n",
       "<!-- 2&#45;&gt;3 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>2&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M79.29,-143.7C79.29,-135.98 79.29,-126.71 79.29,-118.11\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"82.79,-118.1 79.29,-108.1 75.79,-118.1 82.79,-118.1\"/>\n",
       "</g>\n",
       "<!-- 4 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>4</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"79.29\" cy=\"-18\" rx=\"79.09\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"79.29\" y=\"-14.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Plot Sinx and Cosx</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;4 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>3&#45;&gt;4</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M73.41,-72.05C72.6,-64.35 72.35,-55.03 72.69,-46.36\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"76.19,-46.49 73.38,-36.28 69.2,-46.01 76.19,-46.49\"/>\n",
       "</g>\n",
       "<!-- 5 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>5</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"203.29\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"203.29\" y=\"-14.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">End</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;5 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>3&#45;&gt;5</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M106.81,-73.46C126.86,-62.15 153.96,-46.85 174.33,-35.35\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"176.18,-38.32 183.17,-30.36 172.74,-32.23 176.18,-38.32\"/>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;3 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>4&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M85.21,-36.28C86.01,-44.03 86.23,-53.36 85.88,-62.01\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"82.39,-61.83 85.17,-72.05 89.37,-62.33 82.39,-61.83\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.graphs.Digraph at 0x195f0b49fa0>"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "'''import graphviz as viz\n",
    "viz.Digraph() '''\n",
    "from graphviz import Digraph\n",
    "dot = Digraph()\n",
    "dot.node('1','Start')\n",
    "dot.node('2','Input=>x')\n",
    "dot.node('3','for(i=0;i<0;i++') \n",
    "dot.node('4','Plot Sinx and Cosx')\n",
    "dot.node('5','End')\n",
    "dot.edge('1','2')\n",
    "dot.edge('2','3')\n",
    "dot.edge('3','4',Label='Yes')\n",
    "dot.edge('3','5',Label='No')\n",
    "dot.edge('4','3')\n",
    "\n",
    "dot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                                                                                                                *                                                                                                                                 \n",
      "                                                                                                                               * *                                                                                                                                \n",
      "                                                                                                                              * * *                                                                                                                               \n",
      "                                                                                                                            * ** ** *                                                                                                                             \n",
      "                                                                                                                          * ** *** ** *                                                                                                                           \n",
      "                                                                                                                     * *** ***** ***** *** *                                                                                                                      \n",
      "                                                                                                             * *** ******** ********** ******** *** *                                                                                                             \n",
      "                                                                                           * **** *********** ****************** ****************** *********** **** *                                                                                            \n",
      "                                                            * **** ************** **************************** *********************************** **************************** ************** **** *                                                             \n",
      "* ***** ****************** ****************************************** *************************************************************** *************************************************************** ****************************************** ****************** ***** *\n"
     ]
    }
   ],
   "source": [
    "def generate_pascals_triangle(n):\n",
    "    triangle = []\n",
    "    for i in range(n):\n",
    "        row = [1] * (i + 1)\n",
    "        for j in range(1, i):\n",
    "            row[j] = triangle[i-1][j-1] + triangle[i-1][j]\n",
    "        triangle.append(row)\n",
    "    return triangle\n",
    " \n",
    "def draw_pascals_triangle(triangle, max_value_per_star=2):\n",
    "    # 确定三角形中的最大值，用于缩放星号数量\n",
    "    max_value = max(max(row) for row in triangle)\n",
    "    \n",
    "    # 根据元素值确定星号数量的函数\n",
    "    def num_stars(value):\n",
    "        return (value // max_value_per_star) + (1 if value % max_value_per_star != 0 else 0)\n",
    "    \n",
    "    # 计算每行需要的最大宽度（包括空格）\n",
    "    max_width = max(len(''.join(['*' * num_stars(num) for num in row])) for row in triangle)\n",
    "    \n",
    "    for row in triangle:\n",
    "        # 生成星号字符串列表\n",
    "        stars = ['*' * num_stars(num) for num in row]\n",
    "        # 将星号列表转换为字符串，并用空格填充到最大宽度\n",
    "        formatted_row = ' '.join(stars).center(max_width)\n",
    "        # 打印当前行\n",
    "        print(formatted_row)\n",
    " \n",
    "# 设置要生成的杨辉三角形的行数\n",
    "n = 10\n",
    "triangle = generate_pascals_triangle(n)\n",
    "draw_pascals_triangle(triangle)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      *\n",
      "     ***\n",
      "    *****\n",
      "   *******\n",
      "  *********\n",
      " ***********\n",
      "*************\n",
      "  **\n",
      "  **\n"
     ]
    }
   ],
   "source": [
    "def print_tree(height):\n",
    "    # 绘制树冠部分\n",
    "    for i in range(height):\n",
    "        # 每一行先打印空格，使星号居中\n",
    "        print(' ' * (height - i - 1) + '*' * (2 * i + 1))\n",
    "    \n",
    "    # 绘制树干部分\n",
    "    trunk_width = height // 3\n",
    "    trunk_height = height // 3\n",
    "    trunk_space = (height - trunk_width) // 2\n",
    "    \n",
    "    for i in range(trunk_height):\n",
    "        print(' ' * trunk_space + '*' * trunk_width)\n",
    "\n",
    "# 调用函数并设置树的高度\n",
    "print_tree(7)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "你的等级是: B\n"
     ]
    }
   ],
   "source": [
    "def determine_grade(score):\n",
    "     if score >= 90:\n",
    "         return 'A'\n",
    "     elif score >= 80:\n",
    "         return 'B'\n",
    "     elif score >= 70:\n",
    "         return 'C'\n",
    "     elif score >= 60:\n",
    "         return 'D'\n",
    "     else:\n",
    "         return 'F'\n",
    "\n",
    "def main():\n",
    "    try:\n",
    "         score = float(input(\"请输入成绩（0-100）: \"))\n",
    "         if not 0 <= score <= 100:\n",
    "             print(\"成绩必须在0到100之间。\")\n",
    "         else:\n",
    "            grade = determine_grade(score)\n",
    "            print(f\"你的等级是: {grade}\")\n",
    "    except ValueError:\n",
    "        print(\"请输入一个有效的数字。\")\n",
    "\n",
    "if __name__ == \"__main__\":\n",
    "    main()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.50.0 (0)\n",
       " -->\n",
       "<!-- Title: 分支结构 Pages: 1 -->\n",
       "<svg width=\"424pt\" height=\"674pt\"\n",
       " viewBox=\"0.00 0.00 424.14 674.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 670)\">\n",
       "<title>分支结构</title>\n",
       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-670 420.14,-670 420.14,4 -4,4\"/>\n",
       "<!-- 1 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>1</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"324.57,-666 270.57,-666 270.57,-630 324.57,-630 324.57,-666\"/>\n",
       "<text text-anchor=\"middle\" x=\"297.57\" y=\"-644.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">开始</text>\n",
       "</g>\n",
       "<!-- 2 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>2</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"409.06,-593 231.71,-593 186.08,-557 363.44,-557 409.06,-593\"/>\n",
       "<text text-anchor=\"middle\" x=\"297.57\" y=\"-571.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">请输入成绩=?</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;2 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>1&#45;&gt;2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M297.57,-629.81C297.57,-621.79 297.57,-612.05 297.57,-603.07\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"301.07,-603.03 297.57,-593.03 294.07,-603.03 301.07,-603.03\"/>\n",
       "</g>\n",
       "<!-- 3 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>3</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"297.57,-520 178.93,-502 297.57,-484 416.21,-502 297.57,-520\"/>\n",
       "<text text-anchor=\"middle\" x=\"297.57\" y=\"-498.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">x是否大等于90?</text>\n",
       "</g>\n",
       "<!-- 2&#45;&gt;3 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>2&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M297.57,-556.81C297.57,-548.79 297.57,-539.05 297.57,-530.07\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"301.07,-530.03 297.57,-520.03 294.07,-530.03 301.07,-530.03\"/>\n",
       "</g>\n",
       "<!-- 4 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>4</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"223.57,-433 104.93,-415 223.57,-397 342.21,-415 223.57,-433\"/>\n",
       "<text text-anchor=\"middle\" x=\"223.57\" y=\"-411.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">x是否大等于80?</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;4 -->\n",
       "<g id=\"edge9\" class=\"edge\">\n",
       "<title>3&#45;&gt;4</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M284.34,-485.8C272.98,-472.75 256.42,-453.74 243.46,-438.85\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"245.89,-436.31 236.69,-431.06 240.61,-440.91 245.89,-436.31\"/>\n",
       "<text text-anchor=\"middle\" x=\"273.07\" y=\"-454.8\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">No</text>\n",
       "</g>\n",
       "<!-- a -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>a</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"398.57,-379 342.57,-379 342.57,-343 398.57,-343 398.57,-379\"/>\n",
       "<text text-anchor=\"middle\" x=\"370.57\" y=\"-357.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print A</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;a -->\n",
       "<g id=\"edge8\" class=\"edge\">\n",
       "<title>3&#45;&gt;a</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M312.45,-486.07C324.61,-473.07 341.4,-453.2 351.57,-433 358.45,-419.33 363.06,-402.88 366.01,-389.26\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"369.52,-389.54 368.03,-379.05 362.65,-388.18 369.52,-389.54\"/>\n",
       "<text text-anchor=\"middle\" x=\"350.07\" y=\"-454.8\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Yes</text>\n",
       "</g>\n",
       "<!-- 5 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>5</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"169.57,-325 50.93,-307 169.57,-289 288.21,-307 169.57,-325\"/>\n",
       "<text text-anchor=\"middle\" x=\"169.57\" y=\"-303.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">x是否大等于70?</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;5 -->\n",
       "<g id=\"edge11\" class=\"edge\">\n",
       "<title>4&#45;&gt;5</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M215.37,-397.9C206.6,-380.68 192.57,-353.14 182.35,-333.08\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"185.33,-331.22 177.67,-323.9 179.09,-334.4 185.33,-331.22\"/>\n",
       "<text text-anchor=\"middle\" x=\"212.07\" y=\"-357.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">No</text>\n",
       "</g>\n",
       "<!-- b -->\n",
       "<g id=\"node8\" class=\"node\">\n",
       "<title>b</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"347.57,-271 291.57,-271 291.57,-235 347.57,-235 347.57,-271\"/>\n",
       "<text text-anchor=\"middle\" x=\"319.57\" y=\"-249.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print B</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;b -->\n",
       "<g id=\"edge10\" class=\"edge\">\n",
       "<title>4&#45;&gt;b</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M238.98,-399.31C255.59,-382.69 281.76,-354.14 297.57,-325 305.02,-311.26 310.35,-294.63 313.89,-280.92\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"317.32,-281.64 316.26,-271.1 310.51,-280 317.32,-281.64\"/>\n",
       "<text text-anchor=\"middle\" x=\"296.07\" y=\"-357.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Yes</text>\n",
       "</g>\n",
       "<!-- 6 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>6</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"118.57,-217 -0.07,-199 118.57,-181 237.21,-199 118.57,-217\"/>\n",
       "<text text-anchor=\"middle\" x=\"118.57\" y=\"-195.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">x是否大等于60?</text>\n",
       "</g>\n",
       "<!-- 5&#45;&gt;6 -->\n",
       "<g id=\"edge13\" class=\"edge\">\n",
       "<title>5&#45;&gt;6</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M161.83,-289.9C153.54,-272.68 140.29,-245.14 130.64,-225.08\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"133.71,-223.4 126.22,-215.9 127.4,-226.43 133.71,-223.4\"/>\n",
       "<text text-anchor=\"middle\" x=\"161.07\" y=\"-249.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">No</text>\n",
       "</g>\n",
       "<!-- c -->\n",
       "<g id=\"node9\" class=\"node\">\n",
       "<title>c</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"293.57,-163 237.57,-163 237.57,-127 293.57,-127 293.57,-163\"/>\n",
       "<text text-anchor=\"middle\" x=\"265.57\" y=\"-141.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print C</text>\n",
       "</g>\n",
       "<!-- 5&#45;&gt;c -->\n",
       "<g id=\"edge12\" class=\"edge\">\n",
       "<title>5&#45;&gt;c</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M186.18,-291.25C203.69,-274.81 230.88,-246.61 246.57,-217 253.81,-203.34 258.45,-186.72 261.33,-172.99\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"264.77,-173.63 263.21,-163.15 257.9,-172.32 264.77,-173.63\"/>\n",
       "<text text-anchor=\"middle\" x=\"245.07\" y=\"-249.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Yes</text>\n",
       "</g>\n",
       "<!-- d -->\n",
       "<g id=\"node10\" class=\"node\">\n",
       "<title>d</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"157.57,-109 101.57,-109 101.57,-73 157.57,-73 157.57,-109\"/>\n",
       "<text text-anchor=\"middle\" x=\"129.57\" y=\"-87.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print D</text>\n",
       "</g>\n",
       "<!-- 6&#45;&gt;d -->\n",
       "<g id=\"edge14\" class=\"edge\">\n",
       "<title>6&#45;&gt;d</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M120.34,-180.97C122.06,-164.38 124.71,-138.88 126.72,-119.43\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"130.22,-119.65 127.77,-109.34 123.26,-118.93 130.22,-119.65\"/>\n",
       "<text text-anchor=\"middle\" x=\"137.07\" y=\"-141.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Yes</text>\n",
       "</g>\n",
       "<!-- e -->\n",
       "<g id=\"node11\" class=\"node\">\n",
       "<title>e</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"235.07,-109 180.07,-109 180.07,-73 235.07,-73 235.07,-109\"/>\n",
       "<text text-anchor=\"middle\" x=\"207.57\" y=\"-87.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print E</text>\n",
       "</g>\n",
       "<!-- 6&#45;&gt;e -->\n",
       "<g id=\"edge15\" class=\"edge\">\n",
       "<title>6&#45;&gt;e</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M133.33,-182.94C139.14,-176.85 145.79,-169.7 151.57,-163 164.31,-148.24 177.87,-131.08 188.46,-117.34\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"191.33,-119.34 194.63,-109.27 185.78,-115.08 191.33,-119.34\"/>\n",
       "<text text-anchor=\"middle\" x=\"188.07\" y=\"-141.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">No</text>\n",
       "</g>\n",
       "<!-- 7 -->\n",
       "<g id=\"node12\" class=\"node\">\n",
       "<title>7</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"292.57,-36 238.57,-36 238.57,0 292.57,0 292.57,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"265.57\" y=\"-14.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">结束</text>\n",
       "</g>\n",
       "<!-- a&#45;&gt;7 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>a&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M369.26,-342.75C367.78,-321.79 365.57,-285.32 365.57,-254 365.57,-254 365.57,-254 365.57,-90 365.57,-57.91 330.9,-38.99 302.39,-28.86\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"303.23,-25.45 292.63,-25.64 301.03,-32.1 303.23,-25.45\"/>\n",
       "</g>\n",
       "<!-- b&#45;&gt;7 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>b&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M317.68,-234.89C314.85,-210.69 308.93,-165.17 300.57,-127 293.35,-94.02 290.52,-85.94 279.57,-54 278.64,-51.27 277.61,-48.45 276.55,-45.64\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"279.8,-44.35 272.9,-36.32 273.28,-46.91 279.8,-44.35\"/>\n",
       "</g>\n",
       "<!-- c&#45;&gt;7 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>c&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M265.57,-126.88C265.57,-106.15 265.57,-70.95 265.57,-46.42\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"269.07,-46.31 265.57,-36.31 262.07,-46.31 269.07,-46.31\"/>\n",
       "</g>\n",
       "<!-- d&#45;&gt;7 -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>d&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M157.75,-75.29C178.54,-64.44 206.99,-49.58 229.45,-37.86\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"231.11,-40.94 238.36,-33.21 227.87,-34.73 231.11,-40.94\"/>\n",
       "</g>\n",
       "<!-- e&#45;&gt;7 -->\n",
       "<g id=\"edge7\" class=\"edge\">\n",
       "<title>e&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M221.61,-72.81C228.66,-64.18 237.34,-53.56 245.12,-44.03\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"248.04,-45.99 251.66,-36.03 242.62,-41.56 248.04,-45.99\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.graphs.Digraph at 0x195f0a318b0>"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import graphviz\n",
    "dot=graphviz.Digraph(comment='the round table',name=\"分支结构\",node_attr={'shape':'box'})\n",
    "dot.node('1','开始')\n",
    "dot.node('2','请输入成绩=?', shape='parallelogram')\n",
    "dot.node('3','x是否大等于90?', shape='diamond')\n",
    "dot.node('4','x是否大等于80?', shape='diamond')\n",
    "dot.node('5','x是否大等于70?', shape='diamond')\n",
    "dot.node('6','x是否大等于60?', shape='diamond')\n",
    "dot.node('a','Print A')\n",
    "dot.node('b','Print B')\n",
    "dot.node('c','Print C')\n",
    "dot.node('d','Print D')\n",
    "dot.node('e','Print E')\n",
    "dot.node('7','结束')\n",
    "dot.edges(['12','23','a7','b7','c7','d7','e7'])\n",
    "dot.edge('3','a',label='Yes')\n",
    "dot.edge('3','4',label='No')\n",
    "dot.edge('4','b',label='Yes')\n",
    "dot.edge('4','5',label='No')\n",
    "dot.edge('5','c',label='Yes')\n",
    "dot.edge('5','6',label='No')\n",
    "dot.edge('6','d',label='Yes')\n",
    "dot.edge('6','e',label='No')\n",
    "dot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id = Section1> </a>\n",
    "## 2.1 程序执行过程\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "a=!pip list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "numpy                             1.26.4\n",
      "numpydoc                          1.7.0\n",
      "matplotlib                        3.8.4\n",
      "matplotlib-inline                 0.1.6\n"
     ]
    }
   ],
   "source": [
    "for item in a:\n",
    "    if 'numpy' in item:\n",
    "        print(item)\n",
    "\n",
    "\n",
    "for item in a:\n",
    "    if 'matplotlib' in item:\n",
    "        print(item)\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x195f0a04cb0>,\n",
       " <matplotlib.lines.Line2D at 0x195f0a04b90>]"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(0,100*np.pi)\n",
    "plt.plot(x,np.sin(8*x+np.pi/2),x,np.cos(x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.50.0 (0)\n",
       " -->\n",
       "<!-- Pages: 1 -->\n",
       "<svg width=\"238pt\" height=\"260pt\"\n",
       " viewBox=\"0.00 0.00 238.29 260.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 256)\">\n",
       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-256 234.29,-256 234.29,4 -4,4\"/>\n",
       "<!-- 1 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>1</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"79.29\" cy=\"-234\" rx=\"27.1\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"79.29\" y=\"-230.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Start</text>\n",
       "</g>\n",
       "<!-- 2 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>2</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"79.29\" cy=\"-162\" rx=\"44.39\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"79.29\" y=\"-158.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Input=&gt;x</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;2 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>1&#45;&gt;2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M79.29,-215.7C79.29,-207.98 79.29,-198.71 79.29,-190.11\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"82.79,-190.1 79.29,-180.1 75.79,-190.1 82.79,-190.1\"/>\n",
       "</g>\n",
       "<!-- 3 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>3</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"79.29\" cy=\"-90\" rx=\"66.09\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"79.29\" y=\"-86.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">for(i=0;i&lt;0;i++</text>\n",
       "</g>\n",
       "<!-- 2&#45;&gt;3 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>2&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M79.29,-143.7C79.29,-135.98 79.29,-126.71 79.29,-118.11\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"82.79,-118.1 79.29,-108.1 75.79,-118.1 82.79,-118.1\"/>\n",
       "</g>\n",
       "<!-- 4 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>4</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"79.29\" cy=\"-18\" rx=\"79.09\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"79.29\" y=\"-14.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Plot Sinx and Cosx</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;4 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>3&#45;&gt;4</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M73.41,-72.05C72.6,-64.35 72.35,-55.03 72.69,-46.36\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"76.19,-46.49 73.38,-36.28 69.2,-46.01 76.19,-46.49\"/>\n",
       "</g>\n",
       "<!-- 5 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>5</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"203.29\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"203.29\" y=\"-14.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">End</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;5 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>3&#45;&gt;5</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M106.81,-73.46C126.86,-62.15 153.96,-46.85 174.33,-35.35\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"176.18,-38.32 183.17,-30.36 172.74,-32.23 176.18,-38.32\"/>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;3 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>4&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M85.21,-36.28C86.01,-44.03 86.23,-53.36 85.88,-62.01\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"82.39,-61.83 85.17,-72.05 89.37,-62.33 82.39,-61.83\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.graphs.Digraph at 0x195f0a06ea0>"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "'''import graphviz as viz\n",
    "viz.Digraph() '''\n",
    "from graphviz import Digraph\n",
    "dot = Digraph()\n",
    "dot.node('1','Start')\n",
    "dot.node('2','Input=>x')\n",
    "dot.node('3','for(i=0;i<0;i++') \n",
    "dot.node('4','Plot Sinx and Cosx')\n",
    "dot.node('5','End')\n",
    "dot.edge('1','2')\n",
    "dot.edge('2','3')\n",
    "dot.edge('3','4',Label='Yes')\n",
    "dot.edge('3','5',Label='No')\n",
    "dot.edge('4','3')\n",
    "\n",
    "dot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 程序设计语言：机器语言、汇编语言、高级语言\n",
    "## 编译和解释\n",
    "编译：fortran C C++ C#\n",
    "解释：basic JavaScript PHP \n",
    "Python？？？\n",
    "Python语言执行的几种方式：\n",
    "\n",
    "分析程序执行过程-IPO：  \n",
    "a. Input模块：  \n",
    "b. Process模块：  \n",
    "c. Output模块：  \n",
    "\n",
    "\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id = Section2> </a>\n",
    "## 2.2 程序实例\n",
    "\n",
    "<p><a href=\"https://yanghailin.blog.csdn.net/article/details/81126087?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link\">\n",
    "this is example of python</a></p"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "24\n",
      "['123', '124', '132', '134', '142', '143', '213', '214', '231', '234', '241', '243', '312', '314', '321', '324', '341', '342', '412', '413', '421', '423', '431', '432']\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    "Created on Thu Jul 19 19:51:08 2018\n",
    "有四个数字：1、2、3、4，能组成多少个互不相同且无重复数字的三位数？各是多少？\n",
    "@author: yhl\n",
    "\"\"\"\n",
    " \n",
    "L=[]\n",
    "a=[1,2,3,4]\n",
    " \n",
    "#for i in range(len(a)):\n",
    " \n",
    "for val_1 in a:   #   for(i=1;i<n;I++)\n",
    "    for val_2 in a:\n",
    "        for val_3 in a:\n",
    "            if(val_1 == val_2 or val_1 == val_3 or val_2 == val_3):\n",
    "                continue;\n",
    "            else:\n",
    "                L.append(str(val_1)+str(val_2)+str(val_3))\n",
    " \n",
    " \n",
    "print(len(L)) \n",
    "print (L)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "https://www.graphviz.org/download/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.50.0 (0)\n",
       " -->\n",
       "<!-- Pages: 1 -->\n",
       "<svg width=\"565pt\" height=\"496pt\"\n",
       " viewBox=\"0.00 0.00 564.51 496.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 492)\">\n",
       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-492 560.51,-492 560.51,4 -4,4\"/>\n",
       "<!-- A -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>A</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"223.37\" cy=\"-470\" rx=\"33.29\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"223.37\" y=\"-466.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">开始</text>\n",
       "</g>\n",
       "<!-- B -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>B</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"223.37\" cy=\"-397\" rx=\"105.88\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"223.37\" y=\"-393.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">初始化L=[]; a=[1,2,3,4]</text>\n",
       "</g>\n",
       "<!-- A&#45;&gt;B -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>A&#45;&gt;B</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M223.37,-451.81C223.37,-443.79 223.37,-434.05 223.37,-425.07\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"226.87,-425.03 223.37,-415.03 219.87,-425.03 226.87,-425.03\"/>\n",
       "</g>\n",
       "<!-- C -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>C</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"223.37\" cy=\"-324\" rx=\"58.49\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"223.37\" y=\"-320.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">for val_1 in a</text>\n",
       "</g>\n",
       "<!-- B&#45;&gt;C -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>B&#45;&gt;C</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M223.37,-378.81C223.37,-370.79 223.37,-361.05 223.37,-352.07\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"226.87,-352.03 223.37,-342.03 219.87,-352.03 226.87,-352.03\"/>\n",
       "</g>\n",
       "<!-- D -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>D</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"223.37\" cy=\"-251\" rx=\"58.49\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"223.37\" y=\"-247.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">for val_2 in a</text>\n",
       "</g>\n",
       "<!-- C&#45;&gt;D -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>C&#45;&gt;D</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M217.49,-305.81C216.65,-297.79 216.42,-288.05 216.79,-279.07\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"220.29,-279.25 217.51,-269.03 213.31,-278.75 220.29,-279.25\"/>\n",
       "</g>\n",
       "<!-- I -->\n",
       "<g id=\"node9\" class=\"node\">\n",
       "<title>I</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"371.37\" cy=\"-251\" rx=\"71.49\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"371.37\" y=\"-247.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">打印len(L)和L</text>\n",
       "</g>\n",
       "<!-- C&#45;&gt;I -->\n",
       "<g id=\"edge12\" class=\"edge\">\n",
       "<title>C&#45;&gt;I</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M253.68,-308.46C275.78,-297.86 305.97,-283.37 330.25,-271.73\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"332.07,-274.74 339.57,-267.26 329.04,-268.43 332.07,-274.74\"/>\n",
       "</g>\n",
       "<!-- D&#45;&gt;C -->\n",
       "<g id=\"edge11\" class=\"edge\">\n",
       "<title>D&#45;&gt;C</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M229.23,-269.03C230.08,-277.03 230.32,-286.77 229.95,-295.75\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"226.46,-295.59 229.25,-305.81 233.44,-296.08 226.46,-295.59\"/>\n",
       "</g>\n",
       "<!-- E -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>E</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"223.37\" cy=\"-178\" rx=\"58.49\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"223.37\" y=\"-174.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">for val_3 in a</text>\n",
       "</g>\n",
       "<!-- D&#45;&gt;E -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>D&#45;&gt;E</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M217.49,-232.81C216.65,-224.79 216.42,-215.05 216.79,-206.07\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"220.29,-206.25 217.51,-196.03 213.31,-205.75 220.29,-206.25\"/>\n",
       "</g>\n",
       "<!-- E&#45;&gt;D -->\n",
       "<g id=\"edge10\" class=\"edge\">\n",
       "<title>E&#45;&gt;D</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M229.23,-196.03C230.08,-204.03 230.32,-213.77 229.95,-222.75\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"226.46,-222.59 229.25,-232.81 233.44,-223.08 226.46,-222.59\"/>\n",
       "</g>\n",
       "<!-- F -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>F</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"223.37\" cy=\"-105\" rx=\"206.86\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"223.37\" y=\"-101.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">if val_1 == val_2 or val_1 == val_3 or val_2 == val_3</text>\n",
       "</g>\n",
       "<!-- E&#45;&gt;F -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>E&#45;&gt;F</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M223.37,-159.81C223.37,-151.79 223.37,-142.05 223.37,-133.07\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"226.87,-133.03 223.37,-123.03 219.87,-133.03 226.87,-133.03\"/>\n",
       "</g>\n",
       "<!-- G -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>G</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"105.37\" cy=\"-18\" rx=\"40.89\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"105.37\" y=\"-14.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">continue</text>\n",
       "</g>\n",
       "<!-- F&#45;&gt;G -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>F&#45;&gt;G</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M199.77,-87C180.82,-73.35 154.14,-54.13 133.98,-39.61\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"135.93,-36.7 125.78,-33.7 131.84,-42.38 135.93,-36.7\"/>\n",
       "<text text-anchor=\"middle\" x=\"181.37\" y=\"-57.8\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">是</text>\n",
       "<text text-anchor=\"middle\" x=\"149.72\" y=\"-64.11\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">True</text>\n",
       "</g>\n",
       "<!-- H -->\n",
       "<g id=\"node8\" class=\"node\">\n",
       "<title>H</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"393.37\" cy=\"-18\" rx=\"163.27\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"393.37\" y=\"-14.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">L.append(str(val_1)+str(val_2)+str(val_3))</text>\n",
       "</g>\n",
       "<!-- F&#45;&gt;H -->\n",
       "<g id=\"edge8\" class=\"edge\">\n",
       "<title>F&#45;&gt;H</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M256.96,-87.21C283.85,-73.76 321.74,-54.81 350.77,-40.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"352.47,-43.36 359.85,-35.76 349.34,-37.1 352.47,-43.36\"/>\n",
       "<text text-anchor=\"middle\" x=\"328.37\" y=\"-57.8\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">否</text>\n",
       "</g>\n",
       "<!-- G&#45;&gt;E -->\n",
       "<g id=\"edge7\" class=\"edge\">\n",
       "<title>G&#45;&gt;E</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M77.95,-31.44C40.17,-50.27 -20.26,-87.61 7.37,-123 26,-146.86 102.66,-161.73 159.39,-169.69\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"158.99,-173.17 169.37,-171.05 159.93,-166.23 158.99,-173.17\"/>\n",
       "</g>\n",
       "<!-- H&#45;&gt;E -->\n",
       "<g id=\"edge9\" class=\"edge\">\n",
       "<title>H&#45;&gt;E</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M411.37,-36.22C431.99,-58.05 460.39,-96.08 439.37,-123 429.55,-135.57 342.6,-154.38 282.06,-166.16\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"281.37,-162.73 272.21,-168.06 282.69,-169.6 281.37,-162.73\"/>\n",
       "</g>\n",
       "<!-- J -->\n",
       "<g id=\"node10\" class=\"node\">\n",
       "<title>J</title>\n",
       "<ellipse fill=\"none\" stroke=\"black\" cx=\"371.37\" cy=\"-178\" rx=\"33.29\" ry=\"18\"/>\n",
       "<text text-anchor=\"middle\" x=\"371.37\" y=\"-174.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">结束</text>\n",
       "</g>\n",
       "<!-- I&#45;&gt;J -->\n",
       "<g id=\"edge13\" class=\"edge\">\n",
       "<title>I&#45;&gt;J</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M371.37,-232.81C371.37,-224.79 371.37,-215.05 371.37,-206.07\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"374.87,-206.03 371.37,-196.03 367.87,-206.03 374.87,-206.03\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.graphs.Digraph at 0x195f0a73f80>"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from graphviz import Digraph\n",
    "\n",
    "#创建一个有向图对象\n",
    "dot = Digraph(comment='Python Nested Loop Program')\n",
    "\n",
    "#增加节点\n",
    "dot.node('A','开始')\n",
    "dot.node('B','初始化L=[]; a=[1,2,3,4]')\n",
    "dot.node('C', 'for val_1 in a')\n",
    "dot.node('D', 'for val_2 in a')\n",
    "dot.node('E', 'for val_3 in a')\n",
    "dot.node('F', 'if val_1 == val_2 or val_1 == val_3 or val_2 == val_3')\n",
    "dot.node('G', 'continue')\n",
    "dot.node('H','L.append(str(val_1)+str(val_2)+str(val_3))')\n",
    "dot.node('I','打印len(L)和L')\n",
    "dot.node('J','结束')\n",
    "\n",
    "#增加边\n",
    "dot.edge('A','B')\n",
    "dot.edge('B','C')\n",
    "dot.edge('C','D')\n",
    "dot.edge('D','E')\n",
    "dot.edge('E','F')\n",
    "dot.edge('F','G',label='是',xlabel='True' )\n",
    "dot.edge('G','E')\n",
    "dot.edge('F','H', label='否',xlakel='False')\n",
    "dot.edge('H','E')\n",
    "dot.edge('E','D')\n",
    "dot.edge('D','C')\n",
    "dot.edge('C','I')\n",
    "dot.edge('I','J')\n",
    "\n",
    "# 将图导出为文件\n",
    "dot.render('flowchart', format='png',cleanup=True)\n",
    "dot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 2 3 n= 1\n",
      "1 2 4 n= 2\n",
      "1 3 2 n= 3\n",
      "1 3 4 n= 4\n",
      "1 4 2 n= 5\n",
      "1 4 3 n= 6\n",
      "2 1 3 n= 7\n",
      "2 1 4 n= 8\n",
      "2 3 1 n= 9\n",
      "2 3 4 n= 10\n",
      "2 4 1 n= 11\n",
      "2 4 3 n= 12\n",
      "3 1 2 n= 13\n",
      "3 1 4 n= 14\n",
      "3 2 1 n= 15\n",
      "3 2 4 n= 16\n",
      "3 4 1 n= 17\n",
      "3 4 2 n= 18\n",
      "4 1 2 n= 19\n",
      "4 1 3 n= 20\n",
      "4 2 1 n= 21\n",
      "4 2 3 n= 22\n",
      "4 3 1 n= 23\n",
      "4 3 2 n= 24\n"
     ]
    }
   ],
   "source": [
    "n=0\n",
    "for i in range(1,5):\n",
    "    for j in range(1,5):\n",
    "        for k in range(1,5):\n",
    "            if( i != k ) and (i != j) and (j != k):\n",
    "                n=n+1\n",
    "                print (i,j,k,\"n=\",n)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "'''\n",
    "企业发放的奖金根据利润提成。\n",
    "利润(I)低于或等于10万元时,奖金可提10%;\n",
    "利润高于10万元,低于20万元时,低于10万元的部分\n",
    "按10%提成,高于10万元的部分,可提成7.5%;\n",
    "20万到40万之间时,高于20万元的部分,可提成5%;\n",
    "40万到60万之间时高于40万元的部分,可提成3%;\n",
    "60万到100万之间时,高于60万元的部分,可提成1.5%;\n",
    "高于100万元时,超过100万元的部分按1%提成。\n",
    "从键盘输入当月利润I,求应发放奖金总数?\n",
    "'''\n",
    " \n",
    "profit = 0\n",
    "I = int(input(\"please input: \"))\n",
    "if(I<=10):\n",
    "    profit = 0.1 * I\n",
    "elif(I <= 20):\n",
    "    profit = 10 *0.1 + (I - 10)*0.075\n",
    "elif(I <=40):\n",
    "    profit = 10 * 0.1 + (20 - 10)*0.075 + (I - 20)*0.05\n",
    "elif(I <= 60):\n",
    "    profit = 10 * 0.1 + (20 - 10)*0.075 + (40 - 20)*0.05 + (I - 40)*0.03\n",
    "elif(I <= 100):\n",
    "    profit = 10 * 0.1 + (20 - 10)*0.075 + (40 - 20)*0.05 + (60 - 40)*0.03 + (I - 60)*0.015\n",
    "else : \n",
    "    profit = 10 * 0.1 + (20 - 10)*0.075 + (40 - 20)*0.05 + (60 - 40)*0.03 + (100 - 60)*0.015 + (I -100)*0.01\n",
    "    \n",
    "print (\"profit=\",profit)\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "i = int(input('净利润:'))\n",
    "arr = [1000000,600000,400000,200000,100000,0]\n",
    "rat = [0.01,0.015,0.03,0.05,0.075,0.1]\n",
    "r = 0\n",
    "for idx in range(0,6):\n",
    "    if i>arr[idx]:\n",
    "        r+=(i-arr[idx])*rat[idx]#r=r+nnn\n",
    "        print((i-arr[idx])*rat[idx])\n",
    "        i=arr[idx]\n",
    "print (\"profit=\",r)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Python 数字类型转换\n",
    "有时候，我们需要对数据内置的类型进行转换，数据类型的转换，你只需要将数据类型作为函数名即可。\n",
    "\n",
    "int(x) 将x转换为一个整数。\n",
    "\n",
    "float(x) 将x转换到一个浮点数。\n",
    "\n",
    "complex(x) 将x转换到一个复数，实数部分为 x，虚数部分为 0。\n",
    "\n",
    "complex(x, y) 将 x 和 y 转换到一个复数，实数部分为 x，虚数部分为 y。x 和 y 是数字表达式。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=Section3></a>\n",
    "## 2.3程序的基本结构\n",
    "结构化程序的三大基本结构：\n",
    "\n",
    "a.顺序结构  \n",
    "b.分支结构  \n",
    "c.循环结构  \n",
    "\n",
    "\n",
    "\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=Section4></a>\n",
    "## 2.4顺序结构\n",
    "\n",
    "### 数学函数\n",
    "<table><tr>\n",
    "<th>函数</th><th>返回值 ( 描述 )</th></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-abs.html\" rel=\"noopener noreferrer\">abs(x)</a></td><td>返回数字的绝对值，如abs(-10) 返回 10</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-ceil.html\" rel=\"noopener noreferrer\">ceil(x) </a></td><td>返回数字的上入整数，如math.ceil(4.1) 返回 5</td></tr>\n",
    "<tr><td><p>cmp(x, y)</p></td>\n",
    "<td>如果 x &lt; y 返回 -1, 如果 x == y 返回 0, 如果 x &gt; y 返回 1。 <strong style=\"color:red\">Python 3 已废弃，使用 (x&gt;y)-(x&lt;y) 替换</strong>。 </td>\n",
    "</tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-exp.html\" rel=\"noopener noreferrer\">exp(x) </a></td><td>返回e的x次幂(e<sup>x</sup>),如math.exp(1) 返回2.718281828459045</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-fabs.html\" rel=\"noopener noreferrer\">fabs(x)</a></td><td>返回数字的绝对值，如math.fabs(-10) 返回10.0</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-floor.html\" rel=\"noopener noreferrer\">floor(x) </a></td><td>返回数字的下舍整数，如math.floor(4.9)返回 4</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-log.html\" rel=\"noopener noreferrer\">log(x) </a></td><td>如math.log(math.e)返回1.0,math.log(100,10)返回2.0</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-log10.html\" rel=\"noopener noreferrer\">log10(x) </a></td><td>返回以10为基数的x的对数，如math.log10(100)返回 2.0</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-max.html\" rel=\"noopener noreferrer\">max(x1, x2,...) </a></td><td>返回给定参数的最大值，参数可以为序列。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-min.html\" rel=\"noopener noreferrer\">min(x1, x2,...) </a></td><td>返回给定参数的最小值，参数可以为序列。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-modf.html\" rel=\"noopener noreferrer\">modf(x) </a></td><td>返回x的整数部分与小数部分，两部分的数值符号与x相同，整数部分以浮点型表示。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-pow.html\" rel=\"noopener noreferrer\">pow(x, y)</a></td><td> x**y 运算后的值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-round.html\" rel=\"noopener noreferrer\">round(x [,n])</a></td><td><p>返回浮点数 x 的四舍五入值，如给出 n 值，则代表舍入到小数点后的位数。</p>\n",
    "<p><strong>其实准确的说是保留值将保留到离上一位更近的一端。</strong></p>\n",
    "</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-sqrt.html\" rel=\"noopener noreferrer\">sqrt(x) </a></td><td>返回数字x的平方根。</td></tr>\n",
    "</table>\n",
    "\n",
    "### 随机数函数\n",
    "随机数可以用于数学，游戏，安全等领域中，还经常被嵌入到算法中，用以提高算法效率，并提高程序的安全性。\n",
    "\n",
    "Python包含以下常用随机数函数：\n",
    "\n",
    "<table><tr>\n",
    "<th>函数</th><th>描述</th></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-choice.html\" rel=\"noopener noreferrer\">choice(seq)</a></td><td>从序列的元素中随机挑选一个元素，比如random.choice(range(10))，从0到9中随机挑选一个整数。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-randrange.html\" rel=\"noopener noreferrer\">randrange ([start,] stop [,step]) </a></td><td>从指定范围内，按指定基数递增的集合中获取一个随机数，基数默认值为 1</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-random.html\" rel=\"noopener noreferrer\">random() </a></td><td> 随机生成下一个实数，它在[0,1)范围内。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-seed.html\" rel=\"noopener noreferrer\">seed([x]) </a></td><td>改变随机数生成器的种子seed。如果你不了解其原理，你不必特别去设定seed，Python会帮你选择seed。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-shuffle.html\" rel=\"noopener noreferrer\">shuffle(lst) </a></td><td>将序列的所有元素随机排序</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-uniform.html\" rel=\"noopener noreferrer\">uniform(x, y)</a></td><td>随机生成下一个实数，它在[x,y]范围内。</td></tr>\n",
    "</table>\n",
    "\n",
    "### 三角函数\n",
    "Python包括以下三角函数：\n",
    "<table><tr>\n",
    "<th>函数</th><th>描述</th></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-acos.html\" rel=\"noopener noreferrer\">acos(x)</a></td><td>返回x的反余弦弧度值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-asin.html\" rel=\"noopener noreferrer\">asin(x)</a></td><td>返回x的反正弦弧度值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-atan.html\" rel=\"noopener noreferrer\">atan(x)</a></td><td>返回x的反正切弧度值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-atan2.html\" rel=\"noopener noreferrer\">atan2(y, x)</a></td><td>返回给定的 X 及 Y 坐标值的反正切值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-cos.html\" rel=\"noopener noreferrer\">cos(x)</a></td><td>返回x的弧度的余弦值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-hypot.html\" rel=\"noopener noreferrer\">hypot(x, y)</a></td><td>返回欧几里德范数 sqrt(x*x + y*y)。 </td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-sin.html\" rel=\"noopener noreferrer\">sin(x)</a></td><td>返回的x弧度的正弦值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-tan.html\" rel=\"noopener noreferrer\">tan(x)</a></td><td>返回x弧度的正切值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-degrees.html\" rel=\"noopener noreferrer\">degrees(x)</a></td><td>将弧度转换为角度,如degrees(math.pi/2) ，  返回90.0</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-radians.html\" rel=\"noopener noreferrer\">radians(x)</a></td><td>将角度转换为弧度</td></tr>\n",
    "</table>\n",
    "\n",
    "### 数学常量\n",
    "\n",
    "<table><tr>\n",
    "<th>常量</th><th>描述</th></tr>\n",
    "<tr><td>pi</td><td>数学常量 pi（圆周率，一般以π来表示）</td></tr>\n",
    "<tr><td>e</td><td>数学常量 e，e即自然常数（自然常数）。</td></tr>\n",
    "</table>\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 7.0.1 (20221109.1506)\n",
       " -->\n",
       "<!-- Title: 顺序结构 Pages: 1 -->\n",
       "<svg width=\"208pt\" height=\"476pt\"\n",
       " viewBox=\"0.00 0.00 208.12 476.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 472)\">\n",
       "<title>顺序结构</title>\n",
       "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-472 204.12,-472 204.12,4 -4,4\"/>\n",
       "<!-- 1 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>1</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"127.06,-468 73.06,-468 73.06,-432 127.06,-432 127.06,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"100.06\" y=\"-446.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Start</text>\n",
       "</g>\n",
       "<!-- 2 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>2</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"200.18,-396 40.91,-396 -0.06,-360 159.21,-360 200.18,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"100.06\" y=\"-374.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">input Radius =?</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;2 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>1&#45;&gt;2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M100.06,-431.7C100.06,-424.41 100.06,-415.73 100.06,-407.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"103.56,-407.62 100.06,-397.62 96.56,-407.62 103.56,-407.62\"/>\n",
       "</g>\n",
       "<!-- 3 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>3</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"143.06,-324 57.06,-324 57.06,-288 143.06,-288 143.06,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"100.06\" y=\"-302.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print Radius</text>\n",
       "</g>\n",
       "<!-- 2&#45;&gt;3 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>2&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M100.06,-359.7C100.06,-352.41 100.06,-343.73 100.06,-335.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"103.56,-335.62 100.06,-325.62 96.56,-335.62 103.56,-335.62\"/>\n",
       "</g>\n",
       "<!-- 4 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>4</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"152.56,-252 47.56,-252 47.56,-216 152.56,-216 152.56,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"100.06\" y=\"-230.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Caculating Area</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;4 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>3&#45;&gt;4</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M100.06,-287.7C100.06,-280.41 100.06,-271.73 100.06,-263.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"103.56,-263.62 100.06,-253.62 96.56,-263.62 103.56,-263.62\"/>\n",
       "</g>\n",
       "<!-- 5 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>5</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"165.56,-180 34.56,-180 34.56,-144 165.56,-144 165.56,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"100.06\" y=\"-158.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Caculating perimeter</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;5 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>4&#45;&gt;5</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M100.06,-215.7C100.06,-208.41 100.06,-199.73 100.06,-191.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"103.56,-191.62 100.06,-181.62 96.56,-191.62 103.56,-191.62\"/>\n",
       "</g>\n",
       "<!-- 6 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>6</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"127.06,-108 73.06,-108 73.06,-72 127.06,-72 127.06,-108\"/>\n",
       "<text text-anchor=\"middle\" x=\"100.06\" y=\"-86.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">print</text>\n",
       "</g>\n",
       "<!-- 5&#45;&gt;6 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>5&#45;&gt;6</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M100.06,-143.7C100.06,-136.41 100.06,-127.73 100.06,-119.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"103.56,-119.62 100.06,-109.62 96.56,-119.62 103.56,-119.62\"/>\n",
       "</g>\n",
       "<!-- 7 -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>7</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"127.06,-36 73.06,-36 73.06,0 127.06,0 127.06,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"100.06\" y=\"-14.3\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">end</text>\n",
       "</g>\n",
       "<!-- 6&#45;&gt;7 -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>6&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M100.06,-71.7C100.06,-64.41 100.06,-55.73 100.06,-47.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"103.56,-47.62 100.06,-37.62 96.56,-47.62 103.56,-47.62\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.graphs.Digraph at 0x20baea4e410>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import graphviz\n",
    "dot=graphviz.Digraph(comment='the round table',name=\"顺序结构\",node_attr={'shape': 'box'})\n",
    "dot.node('1','Start')\n",
    "dot.node('2','input Radius =?',shape='parallelogram')\n",
    "dot.node('3','Print Radius')\n",
    "dot.node('4','Caculating Area')\n",
    "dot.node('5','Caculating perimeter')\n",
    "dot.node('6','print')\n",
    "dot.node('7','end')\n",
    "dot.edges(['12','23','34','45','56','67'])\n",
    "dot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Ridus= 15\n",
      "面积和周长: 706.8375000000001 94.245\n"
     ]
    }
   ],
   "source": [
    "''' \n",
    "计算圆周长\n",
    "'''\n",
    "Radius = eval(input(\"请输入圆半径:\"))\n",
    "print(\"Ridus=\",Radius)\n",
    "Area = 3.1415*Radius*Radius\n",
    "perimeter  = 2*3.1415*Radius \n",
    "print(\"面积和周长:\",Area,perimeter)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=section4></a>\n",
    "## 2.5分支结构\n",
    "### 2.5.1 Python比较运算符\n",
    "\n",
    "以下假设变量a为10，变量b为20：\n",
    "<table><tr>\n",
    "<th width=\"10%\">运算符</th><th>描述</th><th>实例</th>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>==</td><td> 等于 - 比较对象是否相等</td><td> (a == b) 返回 False。 </td>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>!=</td><td> 不等于 - 比较两个对象是否不相等</td><td> (a != b) 返回 True。 </td>\n",
    "</tr>\n",
    "\n",
    "<tr>\n",
    "<td>&gt;</td><td> 大于 - 返回x是否大于y</td><td> (a &gt; b) 返回 False。</td>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>&lt;</td><td> 小于 - 返回x是否小于y。所有比较运算符返回1表示真，返回0表示假。这分别与特殊的变量True和False等价。注意，这些变量名的大写。</td><td> (a &lt; b) 返回 True。 </td>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>&gt;=</td><td> 大于等于 - 返回x是否大于等于y。</td><td> (a &gt;= b) 返回 False。</td>\n",
    "\n",
    "</tr>\n",
    "<tr>\n",
    "<td>&lt;=</td><td> 小于等于 - 返回x是否小于等于y。</td><td> (a &lt;= b) 返回 True。 </td>\n",
    "</tr>\n",
    "</table>\n",
    "\n",
    "### 2.5.2 Python逻辑运算符        \n",
    "Python语言支持逻辑运算符，以下假设变量 a 为 10, b为 20:\n",
    "<table><tr>\n",
    "<th>运算符</th><th>逻辑表达式</th><th>描述</th><th>实例</th>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>and</td><td>x and y</td><td> 布尔\"与\" - 如果 x 为 False，x and y 返回 x 的值，否则返回 y 的计算值。  </td><td> (a and b) 返回 20。</td>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>or</td><td>x or y</td><td>布尔\"或\" - 如果 x 是 True，它返回 x 的值，否则它返回 y 的计算值。</td><td> (a or b) 返回 10。</td>\n",
    "</tr>\n",
    "<tr><td>not</td><td>not x</td><td>布尔\"非\" - 如果 x 为 True，返回 False 。如果 x 为 False，它返回 True。</td><td> not(a and b) 返回 False </td>\n",
    "</tr>\n",
    "</table>\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.5.3 条件控制语句\n",
    "Python 条件语句是通过一条或多条语句的执行结果（True 或者 False）来决定执行的代码块。\n",
    "\n",
    "可以通过下图来简单了解条件语句的执行过程:\n",
    "\n",
    "<img src=\".//img//if-condition.jpg\" width=\"250\"></img>\n",
    "\n",
    "<img src=\".//img//python-if.webp\" width=\"150\"></img>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 例题 求绝对值。\n",
    "\n",
    "输入：x\n",
    "$$\n",
    "\\begin{align}\n",
    "&&\\left|y\\right |= \\left\\{\\begin{matrix}\n",
    "x & if \\: x\\geq 0\\\\-x& if \\:x< 0\n",
    "\\end{matrix}\\right.{\\color{Red} }\n",
    "\\end{align}\n",
    "$$\n",
    "输出：y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'graphviz' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32mc:\\VSWork\\Pythonwork\\0001\\第二_课程序设计基础.ipynb Cell 19\u001b[0m in \u001b[0;36m<cell line: 1>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> <a href='vscode-notebook-cell:/c%3A/VSWork/Pythonwork/0001/%E7%AC%AC%E4%BA%8C_%E8%AF%BE%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E5%9F%BA%E7%A1%80.ipynb#X24sZmlsZQ%3D%3D?line=0'>1</a>\u001b[0m dot\u001b[39m=\u001b[39mgraphviz\u001b[39m.\u001b[39mDigraph(comment\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mthe round table\u001b[39m\u001b[39m'\u001b[39m,name\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m分支结构\u001b[39m\u001b[39m\"\u001b[39m,node_attr\u001b[39m=\u001b[39m{\u001b[39m'\u001b[39m\u001b[39mshape\u001b[39m\u001b[39m'\u001b[39m: \u001b[39m'\u001b[39m\u001b[39mbox\u001b[39m\u001b[39m'\u001b[39m})\n\u001b[0;32m      <a href='vscode-notebook-cell:/c%3A/VSWork/Pythonwork/0001/%E7%AC%AC%E4%BA%8C_%E8%AF%BE%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E5%9F%BA%E7%A1%80.ipynb#X24sZmlsZQ%3D%3D?line=1'>2</a>\u001b[0m dot\u001b[39m.\u001b[39mnode(\u001b[39m'\u001b[39m\u001b[39m1\u001b[39m\u001b[39m'\u001b[39m,\u001b[39m'\u001b[39m\u001b[39m开始\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m      <a href='vscode-notebook-cell:/c%3A/VSWork/Pythonwork/0001/%E7%AC%AC%E4%BA%8C_%E8%AF%BE%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E5%9F%BA%E7%A1%80.ipynb#X24sZmlsZQ%3D%3D?line=2'>3</a>\u001b[0m dot\u001b[39m.\u001b[39mnode(\u001b[39m'\u001b[39m\u001b[39m2\u001b[39m\u001b[39m'\u001b[39m,\u001b[39m'\u001b[39m\u001b[39m输入Real Number =?\u001b[39m\u001b[39m'\u001b[39m,shape\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mparallelogram\u001b[39m\u001b[39m'\u001b[39m)\n",
      "\u001b[1;31mNameError\u001b[0m: name 'graphviz' is not defined"
     ]
    }
   ],
   "source": [
    "dot=graphviz.Digraph(comment='the round table',name=\"分支结构\",node_attr={'shape': 'box'})\n",
    "dot.node('1','开始')\n",
    "dot.node('2','输入Real Number =?',shape='parallelogram')\n",
    "dot.node('3','判断RealNumber是否大于0？',shape='diamond')\n",
    "dot.node('4','RealNumber=RealNumber')\n",
    "dot.node('5','RealNumber=-RealNumber')\n",
    "dot.node('6','输出绝对值',shape='parallelogram')\n",
    "dot.node('7','结束')\n",
    "dot.edges(['12','23','34','35','46','56','67'])\n",
    "dot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Real Number 3\n",
      "绝对值: 3\n"
     ]
    }
   ],
   "source": [
    "'''\n",
    "求绝对值。\n",
    "'''\n",
    "RealNumber = eval(input(\"输入实数:\"))\n",
    "\n",
    "if (RealNumber < 0):\n",
    "    RealNumber = -RealNumber\n",
    "print(\"绝对值:\",RealNumber)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=section6></a>\n",
    "## 2.6循环结构\n",
    "\n",
    "循环结构：\n",
    "\n",
    "while语句\n",
    "\n",
    "for语句\n",
    "\n",
    "循环分类：  \n",
    "当型循环  \n",
    "直到型循环  \n",
    "\n",
    "\n",
    "\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n"
     ]
    }
   ],
   "source": [
    "char1 =\"a\"\n",
    "char2=\"b\"\n",
    "char3=\"c\"\n",
    "char=char1+char2+char3\n",
    "boor1=(char[2]==char3)\n",
    "print(boor1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 例题 整数累加：  \n",
    "输入：正整数R    \n",
    "处理：  \n",
    "S=1+2+3+…+R  \n",
    "<img src=\"./img/int_add.png\" width=\"150\">  \n",
    "输出：输出S"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "累加求和 55\n"
     ]
    }
   ],
   "source": [
    "R = eval(input(\"请输入正整数:\"))\n",
    "i, S = 0, 0\n",
    "while (i<=R):\n",
    "    S = S + i\n",
    "    i = i + 1\n",
    "print(\"累加求和\",S)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Python 提供了 for 循环和 while 循环（在 Python 中没有 do..while 循环）:\n",
    "\n",
    "<table><tr><th style=\"width:30%\">循环类型</th><th>描述</th></tr>\n",
    "<tr><td><a href=\"/python/python-while-loop.html\" title=\"Python WHILE 循环\">while 循环</a></td><td>在给定的判断条件为 true 时执行循环体，否则退出循环体。</td></tr>\n",
    "<tr><td><a href=\"/python/python-for-loop.html\" title=\" Python FOR 循环\">for 循环</a></td><td>重复执行语句</td></tr>\n",
    "<tr><td><a href=\"/python/python-nested-loops.html\" title=\"Python 循环全套\">嵌套循环</a></td><td>你可以在while循环体中嵌套for循环</td></tr>\n",
    "</table>\n",
    "\n",
    "### 循环控制语句\n",
    "循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句：\n",
    "<table><tr><th style=\"width:30%\">控制语句</th><th>描述</th></tr>\n",
    "<tr><td><a href=\"/python/python-break-statement.html\" title=\"Python break 语句\">break 语句</a></td><td>在语句块执行过程中终止循环，并且跳出整个循环</td></tr>\n",
    "<tr><td><a href=\"/python/python-continue-statement.html\" title=\"Python  语句\">continue 语句</a></td><td>在语句块执行过程中终止当前循环，跳出该次循环，执行下一次循环。</td></tr>\n",
    "<tr><td><a href=\"/python/python-pass-statement.html\" title=\"Python pass 语句\">pass 语句</a></td><td>pass是空语句，是为了保持程序结构的完整性。</td></tr>\n",
    "</table>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 例题 绘制数字图画\n",
    "   <img src=\".//img//Kitty.jpg\" width=\"150 \" alt=\"Kitty猫\">"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "iiiiii>iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\n",
      "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\n",
      "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\n",
      "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\n",
      "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\n",
      "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\n",
      "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\n",
      "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii>i>iiiiiiiiiiiiiiiiiiiiiiiiiiii\n",
      "iiii<+++>>iiiiiiiiiiii~_+_<i>__+<iiiiiiiiiiiiiiiiii>~++<iii>~+++ii___++iiiiiiiii\n",
      "iiii~++_~iii<+____>>ii~_+_>i>_++<iii>~++++<iiiiii>i<++++~++_+<iiiii+_~>i<+++++<>\n",
      "!!!i<++_<>_+________+i~_+_>i>+++<i___+iiii~+_+i>{dqqqt+~<++++<>>ii>___>ii<~++<ii\n",
      "iiii~+++iqOqZpmwmdJ_>>++++>i<_++<>i>_____-+bqwO[}}]}}?}tmmwOZOwwwq(` '.`'mwp}>ii\n",
      "iiiii>ZmOX.           ^pZwZmm0mZwwbZx[l`\"wZU[[}}}}}[[][[}[]Om[            .mmLii\n",
      "iiiiiOmm.                              'mO/}}[}[}?mw}[_qqbm-1[[|pZZmmZmmwwwmmmp!\n",
      "iiiiimmmI.                             .qww1}}[[}}}[-ZZm}}}[}}}}[}[Omwx}}[[[[[[Z\n",
      "iiiii<0mmmJ.                              ..(pwwwwq\"'.Iwqo_?[[]1(wmq[-wQ(}}}}}?Z\n",
      "iiiilpOO'                                                    .mOw}1[}}}}}}[wmmmm\n",
      "iii)mZ(                                                         .  Qmmmmx.`. .nw\n",
      ">iimmq                                                                     ...{Z\n",
      "wmmmmmwmZZZ         .,wZQ'                                  0wmd'             .Z\n",
      ">>>lwZw             tmmmmq.                                [ZZmm{          dwmmq\n",
      "wmwZmmmdZ`.                            wO!!!!zw].                          .JqmJ\n",
      ">>>iii><wmOqZOmq..           Umqwmmp0\"           ^kZdmmd0p:.           .`dZmmmqZ\n",
      ">>iZZpk!!I<i>nwwmmqx'     ZdI<!llll/OqwwC+:II+XmqdZL;llllllwL'.. ..Obmmqx<>iiiii\n",
      "ilIll!iiiiiiiiiiiiii>Il;wwmZOt_wmn;lllllllllllll!!!ll,mmUt0wpmO\"llI!iiillIliiiii\n",
      "!llIl!iii!lllllll!ii;wwq'    mO!!!!<l!Illlllllllll:!!!!lww?  .\"qwZliiii!lllii!ll\n",
      "iIlll!illlllllllllliwmO.     Zbl!!ll!ll!lIqZZ;!!lllllll>wq?..  .wmwiiii!llli>iil\n",
      "illlliiii!!lllll!llbwmZ'      .vmQr<>!IIl!!!l!!!!!i<[0qd      .\\wmw,!iii!!l!iiil\n",
      "iiiiiiiiiiiiiiiiiZqm}-mOd .     `YmbXmZwCmmwqOZmpdjQZ;      .~Zmq]bwm:i>iiiiiiii\n",
      "iiiiiiiiiiiiiiixwwx}}[}}}1OwmwZmUXm0\"l!;IQwmm;lli>>ZmpOdZmwwZ-}}[[}[ZZZ;iiiiiiii\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<>:7: SyntaxWarning: invalid escape sequence '\\|'\n",
      "<>:7: SyntaxWarning: invalid escape sequence '\\|'\n",
      "C:\\Users\\dell\\AppData\\Local\\Temp\\ipykernel_4284\\2959462663.py:7: SyntaxWarning: invalid escape sequence '\\|'\n",
      "  \"$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~<>i!lI;:,\\\"^`'. \")\n"
     ]
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "show_heigth = 30\n",
    "show_width = 80\n",
    "#这两个数字是调出来的\n",
    "\n",
    "ascii_char = list(\n",
    "    \"$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~<>i!lI;:,\\\"^`'. \")\n",
    "#生成一个ascii字符列表\n",
    "char_len = len(ascii_char)\n",
    "\n",
    "pic = plt.imread(\"..\\\\Kitty.jpg\")\n",
    "#使用plt.imread方法来读取图像，对于彩图，返回size = heigth*width*3的图像\n",
    "#matplotlib 中色彩排列是R G B\n",
    "#opencv的cv2中色彩排列是B G R\n",
    "\n",
    "pic_heigth, pic_width, _ = pic.shape\n",
    "#获取图像的高、宽\n",
    "\n",
    "gray = 0.2126 * pic[:, :, 0] + 0.7152 * pic[:, :, 1] + 0.0722 * pic[:, :, 2]\n",
    "#RGB转灰度图的公式 gray = 0.2126 * r + 0.7152 * g + 0.0722 * b\n",
    "\n",
    "#思路就是根据灰度值，映射到相应的ascii_char\n",
    "for i in range(show_heigth):\n",
    "    #根据比例映射到对应的像素\n",
    "    y = int(i * pic_heigth / show_heigth)\n",
    "    text = \"\"\n",
    "    for j in range(show_width):\n",
    "        x = int(j * pic_width / show_width)\n",
    "        text += ascii_char[int(gray[y][x] / 256 * char_len)]\n",
    "    print(text)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ! pip install -i http源\n",
    "新版ubuntu要求使用https源，要注意。\n",
    "\n",
    "清华：https://pypi.tuna.tsinghua.edu.cn/simple\n",
    "\n",
    "阿里云：https://mirrors.aliyun.com/pypi/simple/\n",
    "\n",
    "中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/\n",
    "\n",
    "华中理工大学：https://pypi.hustunique.com/\n",
    "\n",
    "山东理工大学：https://pypi.sdutlinux.org/ \n",
    "\n",
    "豆瓣：https://pypi.douban.com/simple/\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
